# -*- coding: utf-8 -*-

from django.db import models
from django.forms import ModelForm
from django.contrib.auth.models import User
from django import forms
from django.http import HttpResponseRedirect, HttpResponse
from django.core.urlresolvers import reverse
from django.template import RequestContext
from django.contrib.auth.decorators import login_required
from django.shortcuts import render_to_response, get_object_or_404, get_list_or_404, redirect
from django.core.mail import send_mail, BadHeaderError
from django.contrib.auth.forms import *
from django.db.models.query_utils import Q
from si_4k.sistema.models import *
from si_4k.sistema.forms import *
from django.contrib.auth.forms import *
from datetime import *
from django.contrib.auth.forms import PasswordChangeForm
from PIL import *
from  django.contrib.auth.decorators import permission_required
from django.core.mail import send_mail
from decimal import *
from django.contrib import messages
#prefixo = '/home/edu4k/webapps/static_media/'
prefixo = ''
#Cadastros
@permission_required('sistema.perm_cadastro')
def cadastro(request):
    return render_to_response('cadastro.html', locals(), context_instance=RequestContext(request))
    
def agenda(request):
    return render_to_response('agenda.html', locals(), context_instance=RequestContext(request))

@permission_required('sistema.perm_cadastro_aluno')
def cadastro_aluno(request):
	lista_unidades = Unidade.objects.all()
	if request.method == 'GET':
		cadastro = AlunoForm()
		return render_to_response('cadastro_aluno.html', locals(), context_instance=RequestContext(request))
	else:
		unidades = request.POST.getlist('unidade')
		cadastro = AlunoForm(request.POST)
		if cadastro.is_valid():
			aluno = cadastro.save(commit=False)
			try:
				aluno_existente = Aluno.objects.get(nome=aluno.nome)
				messages.error(request, 'Já existe um aluno com este nome. Se o nome for o mesmo que o outro aluno, abrevie um dos nomes.')
			except:
				if unidades:
					aluno.data_ingresso = datetime.now()
					aluno.save()
					divida = Divida(aluno=aluno, valor = 0)
					divida.save()
					relatorio = RelatorioAluno(aluno=aluno)
					relatorio.save()
					aluno.unidade.clear()
					for nome_unidade in unidades:
						unidade = Unidade.objects.get(nome=nome_unidade)
						aluno.unidade.add(unidade)
						if i == 0:
							preco_aula = PrecoAula.objects.get(unidade=unidade) 
							aluno.preco_aula = preco_aula
						i+=1
					aluno.save()
					cadastro = AlunoForm()
					messages.success(request, 'Aluno cadastrado com sucesso!')
				else:
					messages.error(request, 'É preciso adicionar pelo menos uma unidade para realizar o cadastro.')
		else:
			messages.error(request, 'Preencha os dados pessoais corretamente')
		return render_to_response('cadastro_aluno.html', locals(), context_instance=RequestContext(request))

@permission_required('sistema.perm_cadastro_usuario')

def cadastro_local(request):
	lista_local = Local.objects.all()
	erro = False
	success = False
	if request.method == 'GET':
		cadastro = LocalForm()
		return render_to_response('cadastro_local.html', locals(),context_instance=RequestContext(request))
	else:
		cadastro = LocalForm(request.POST)
		if cadastro.is_valid():
			local_novo = cadastro.save()
			cadastro = LocalForm()
		else:
			erro = True
		return render_to_response('cadastro_local.html', locals(), context_instance=RequestContext(request))

@permission_required('sistema.perm_cadastro_funcionario')	
def deleta_local(request,id_local):
    local = Local.objects.get(id=id_local)
    local.delete()
    url = reverse('cadastro_local')
    return HttpResponseRedirect(url)

@permission_required('sistema.perm_cadastro_funcionario')
def cadastro_usuario(request):
    erro = False
    success = False
    if request.method == 'GET':
        cadastro = UserCreationForm()
        return render_to_response('cadastro_usuario.html', locals(),context_instance=RequestContext(request))
    else:
        cadastro = UserCreationForm(request.POST)
        if cadastro.is_valid():
            usuario = cadastro.save()
            url = reverse('cadastro_funcionario', args=[usuario.id])
            return HttpResponseRedirect(url)
        else:
            erro = True
            return render_to_response('cadastro_usuario.html', locals(), context_instance=RequestContext(request))

@permission_required('sistema.perm_cadastro_funcionario')
def cadastro_funcionario(request, id_usuario):
	erro = False
	lista_unidades = Unidade.objects.all()
	if request.method == 'GET':
		cadastro = FuncionarioForm()
		return render_to_response('cadastro_funcionario.html', locals(),context_instance=RequestContext(request))
	else:
		cadastro = FuncionarioForm(request.POST)
		unidades = request.POST.getlist('unidade')
		if cadastro.is_valid():
			funcionario = cadastro.save(commit=False)
			try:
				usuario = User.objects.get(id=id_usuario)
				usuario.email = funcionario.email
				usuario.save()
				funcionario.user = usuario
			except:
				pass
			funcionario.save()
			if funcionario.cargo == 'Professor':
				professor = Professor(detalheusuario = funcionario)
				professor.save()
			funcionario.unidade.clear()
			for nome_unidade in unidades:
				unidade = Unidade.objects.get(nome=nome_unidade)
				funcionario.unidade.add(unidade)
			funcionario.save()
			url = reverse('cadastro_dados_financeiros', args=[funcionario.id])
			return HttpResponseRedirect(url)
		else:
			erro = True
		return render_to_response('cadastro_funcionario.html', locals(), context_instance=RequestContext(request))

@permission_required('sistema.perm_cadastro_dados_financeiros')
def cadastro_dados_financeiros(request, id_funcionario):
    erro = False
    detalheuser = DetalheUsuario.objects.get(id=id_funcionario)
    if request.method == 'GET':
        cadastro = DadosFinanceirosForm()
        return render_to_response('cadastro_dados_financeiros.html', locals(),context_instance=RequestContext(request))
    else:
        cadastro = DadosFinanceirosForm(request.POST)
        if cadastro.is_valid():
            dadosfinanceiros = cadastro.save()
	    dadosfinanceiros.detalheusuario = detalheuser
	    dadosfinanceiros.save()
	    if detalheuser.cargo == 'Professor':
		url = reverse('cadastro_referencias', args=[id_funcionario])
		return HttpResponseRedirect(url)
	    url = reverse('cadastro_usuario')
	    return HttpResponseRedirect(url)
        else:
            erro = True
        return render_to_response('cadastro_dados_financeiros.html', locals(), context_instance=RequestContext(request))

@permission_required('sistema.perm_cadastro_funcionario')    
def cadastro_referencias(request, id_funcionario):
    erro = False
    success = False
    detalheusuario = DetalheUsuario.objects.get(pk=id_funcionario)
    professor = Professor.objects.get(detalheusuario=detalheusuario)
    if request.method == 'GET':
        lista_referencias = Referencias.objects.filter(professor=professor)
	cadastro = ReferenciasForm()
        return render_to_response('cadastro_referencias.html', locals(),context_instance=RequestContext(request))
    else:
        cadastro = ReferenciasForm(request.POST)
        if cadastro.is_valid():
	    valor = request.POST['valor_prof']
	    try:
		valores_sep = valor.rsplit(',')
		valor = valores_sep[0]+'.'+valores_sep[1]
	    except:
		pass
	    professor.valor = valor
	    professor.save()
            referencia = cadastro.save(commit=False)
	    referencia.professor = professor
	    if referencia.tipo:
		referencia.save()	
	    url = reverse('cadastro_referencias', args=[id_funcionario])
	    return HttpResponseRedirect(url)
        else:
            erro = True
        return render_to_response('cadastro_dados_financeiros.html', locals(), context_instance=RequestContext(request))
    return render_to_response('cadastro_referencias.html', locals(), context_instance=RequestContext(request))
    
@permission_required('sistema.perm_cadastro_inventario')   
def cadastro_inventario(request):
	erro = False
	success = False
	lista_inventario = Inventario.objects.all()
	lista_unidades = Unidade.objects.all()
	if request.method == 'GET':
		cadastro = InventarioForm()
		cadastro_estoque = EstoqueForm()
		lista_aluno = Aluno.objects.all()
		return render_to_response('cadastro_inventario.html', locals(), context_instance=RequestContext(request))
	else:
		cadastro = InventarioForm(request.POST)
		nome_unidade = request.POST['unidade']
		cadastro_estoque = EstoqueForm(request.POST)
		if cadastro.is_valid():
			if cadastro_estoque.is_valid():
				try:
					nome_do_objeto = request.POST['objeto']
					objeto_igual = Inventario.objects.get(objeto = nome_do_objeto)
					novo_cadastro_estoque = cadastro_estoque.save(commit=False)
					novo_cadastro_estoque.inventario = objeto_igual
					novo_cadastro_estoque.inventario.quantidade_total += novo_cadastro_estoque.quantidade
					novo_cadastro_estoque.inventario.valor_total += float(novo_cadastro_estoque.valor)
					novo_cadastro_estoque.save()
					novo_cadastro_estoque.inventario.save()
				except:
					inventario = cadastro.save(commit = False)
					novo_cadastro_estoque = cadastro_estoque.save(commit = False)
					inventario.quantidade_total = novo_cadastro_estoque.quantidade
					inventario.valor_total = novo_cadastro_estoque.valor
					inventario.save()
					novo_cadastro_estoque.inventario = inventario
					novo_cadastro_estoque.save()
					inventario.save()
				unidade = Unidade.objects.get(nome=nome_unidade)
				novo_cadastro_estoque.unidade = unidade
				novo_cadastro_estoque.save()
				cadastro = InventarioForm()
				cadastro_estoque = EstoqueForm()
				success = True
			else:
				erro = True 
	return render_to_response('cadastro_inventario.html', locals(), context_instance=RequestContext(request))


#busca
@permission_required('sistema.perm_cadastro_aluno')
def busca(request):
    return render_to_response('busca.html', locals(), context_instance=RequestContext(request))
   
    
#Edição de Objetos
@permission_required('sistema.perm_cadastro_aluno')
def edita_aluno(request, id_aluno):
	aluno = Aluno.objects.get(id=id_aluno)
	lista_unidades = Unidade.objects.all()
	if request.method == 'GET':
		aluno_form = AlunoForm(instance = aluno)
		return render_to_response('edita_aluno.html', locals(), context_instance=RequestContext(request))   
	else:
		aluno_form = AlunoForm(request.POST, instance = aluno)
		unidades = request.POST.getlist('unidade')
		if aluno_form.is_valid():
			if unidades:
				aluno = aluno_form.save()
				success = True
				aluno.unidade.clear()
				i = 0
				for nome_unidade in unidades:
					unidade = Unidade.objects.get(nome=nome_unidade)
					aluno.unidade.add(unidade)
					if i == 0:
						preco_aula = PrecoAula.objects.get(unidade=unidade) 
						aluno.preco_aula = preco_aula
					i+=1
				aluno.save()
				messages.success(request, 'Alteração foi concluida com sucesso!')
			else:
				messages.error(request, 'Você precisa marcar pelo menos uma unidade')
		else:
			messages.error(request, 'Preencha os dados pessoais corretamente')
		return render_to_response('edita_aluno.html', locals(), context_instance=RequestContext(request))

@permission_required('sistema.perm_cadastro_funcionario')
def edita_funcionario(request, id_usuario):
	funcionario = DetalheUsuario.objects.get(id=id_usuario)
	dados_financeiros = DadosFinanceiros.objects.get(detalheusuario=funcionario)
	lista_unidades = Unidade.objects.all()
	if funcionario.cargo == 'Professor':
		professor = Professor.objects.get(detalheusuario=funcionario)
		lista_referencias = Referencias.objects.filter(professor=professor)
		forms_referencias = []
	if request.method == 'GET':
		cadastro = FuncionarioForm(instance = funcionario)
		financeiro_form = DadosFinanceirosForm(instance=dados_financeiros)
		if funcionario.cargo == 'Professor':
			for referencia in lista_referencias:
				forms_referencias.append(ReferenciasForm(instance=referencia, prefix=str(referencia.id)))
				nova_referencia = ReferenciasForm()
	else:
		cadastro = FuncionarioForm(request.POST, instance=funcionario)
		financeiro_form = DadosFinanceirosForm(request.POST, instance=dados_financeiros)	
		unidades = request.POST.getlist('unidade')
		if cadastro.is_valid():
			if financeiro_form.is_valid():
				if funcionario.cargo == 'Professor':
					for referencia in lista_referencias:
						referencia_form = ReferenciasForm(request.POST,instance=referencia, prefix=str(referencia.id))
						if referencia_form.is_valid():
							referencia_form.save()
					nova_referencia = ReferenciasForm(request.POST)
					if nova_referencia:
						if nova_referencia.is_valid():
							referencia = nova_referencia.save(commit=False)
							if referencia.tipo:
								referencia.professor = professor
								referencia.save()
						else:
							messages.error(request,'Preencha a Referência Corretamente')
					valor = request.POST['valor_prof']
					try:
						valores_sep = valor.rsplit(',')
						valor = valores_sep[0]+'.'+valores_sep[1]
					except:
						pass
					professor.valor = valor
					professor.save()
				funcionario = cadastro.save()
				dados_financeiros = financeiro_form.save()
				usuario = User.objects.get(pk=id_usuario)
				usuario.email = funcionario.email
				usuario.save()
				funcionario.unidade.clear()
				for nome_unidade in unidades:
					unidade = Unidade.objects.get(nome=nome_unidade)
					funcionario.unidade.add(unidade)
				funcionario.save()
				cadastro = FuncionarioForm(instance=funcionario)
				financeiro_form = DadosFinanceirosForm(instance=dados_financeiros)
				if funcionario.cargo == 'Professor':
					lista_referencias = Referencias.objects.filter(professor=professor)
					forms_referencias = []
					for referencia in lista_referencias:
						forms_referencias.append(ReferenciasForm(instance=referencia, prefix=str(referencia.id)))
					nova_referencia = ReferenciasForm() 
				messages.success(request,'Alterações foram concluídas com sucesso!')
			else:
				messages.error(request,'Preencha os Dados Financeiros Corretamente')
		else:
			messages.error(request,'Preencha os Dados Pessoais Corretamente')
		
	return render_to_response('edita_funcionario.html', locals(), context_instance=RequestContext(request))

@permission_required('sistema.perm_cadastro_inventario') 
def edita_inventario(request, id_inventario):
	objeto = Inventario.objects.get(id=id_inventario)
	lista_estoques = Estoque.objects.filter(inventario=objeto)
	ano_now = datetime.now()
	estoques_form = []
	if request.method == 'GET':
		inventario_form = InventarioForm(instance = objeto)
		
		for estoque in lista_estoques:
			estoques_form.append(EstoqueForm(instance=estoque, prefix=str(estoque.id)))
		return render_to_response('edita_inventario.html', locals(), context_instance=RequestContext(request))
	else:
		inventario_form = InventarioForm(request.POST, instance= objeto)
		if inventario_form.is_valid():
			for estoque in lista_estoques:
				estoque_form = EstoqueForm(request.POST, instance=estoque, prefix=str(estoque.id))
				estoques_form.append(EstoqueForm(instance=estoque, prefix=str(estoque.id)))
				if estoque_form.is_valid():
					estoque_form.save()
				else:	
					messages.error(request,'Um dos Estoques foi preenchido incorretamente')
			objeto = inventario_form.save()
			
			inventario_form = InventarioForm(instance= objeto)
			messages.success(request,'Alterações foram concluídas com sucesso!')
		else:
			messages.error(request,'Preencha os dados corretamente')
			
		return render_to_response('edita_inventario.html', locals(), context_instance=RequestContext(request))

@login_required
def edita_usuario(request, id_usuario):
	erro = False
	success = False
	funcionario = DetalheUsuario.objects.get(id=id_usuario)
	dados_financeiros = DadosFinanceiros.objects.get(detalheusuario=funcionario)
	if request.method == 'GET':
		cadastro = UsuarioForm(instance = funcionario)
		financeiro_form = DadosFinanceirosForm(instance=dados_financeiros)
		foto_form = FotoForm()
	else:
		cadastro = UsuarioForm(request.POST, instance=funcionario)
		foto_form = FotoForm(request.POST, request.FILES)
		financeiro_form = DadosFinanceirosForm(request.POST, instance=dados_financeiros)
		if cadastro.is_valid():
			if foto_form.is_valid():
				if financeiro_form.is_valid():
					unidades = request.POST.getlist('unidade')
					funcionario = cadastro.save()
					dados_financeiros = financeiro_form.save()
					usuario = User.objects.get(pk=id_usuario)
					usuario.email = funcionario.email
					usuario.save()
					cadastro = UsuarioForm(instance=funcionario)
					financeiro_form = DadosFinanceirosForm(instance=dados_financeiros)
					try:
						foto = foto_form.cleaned_data['foto']
						funcionario.foto = foto.name
						funcionario.save()
						arquivo = open(prefixo+'arquivos/'+foto.name, 'wb+')
						for chunk in foto.chunks():
							arquivo.write(chunk)
						arquivo.close()
					except:
						pass
					funcionario.save()
					success = True
			else:
				erro = True
	if funcionario.cargo == "Professor":
		return render_to_response('prof_edita_usuario.html', locals(), context_instance=RequestContext(request))
	else:
		return render_to_response('edita_usuario.html', locals(), context_instance=RequestContext(request))

@login_required
def edita_senha(request, id_usuario):
	erro = False
	success = False
	if request.method == "POST":
		senha_form = PasswordChangeForm(request.user, request.POST)
		if senha_form.is_valid():
			senha_form.save()
			success = True
			return render_to_response('edita_senha.html', locals(), context_instance=RequestContext(request))
		else:
			erro = True
		return render_to_response('edita_senha.html', locals(), context_instance=RequestContext(request))
	else:
		senha_form = PasswordChangeForm(request.user)
		return render_to_response('edita_senha.html', locals(), context_instance=RequestContext(request))

def duracao_aula(id_aula):
    aula = Aula.objects.get(id=id_aula)
    delta = aula.fim - aula.inicio
    return Decimal(delta.seconds)/3600

#Detalhar Objetos
@permission_required('sistema.perm_cadastro_aluno')
def ver_aluno(request, id_aluno):
	hoje = date.today()
	aluno = Aluno.objects.get(id=id_aluno)
	divida = Divida.objects.get(aluno=aluno)
	if hoje.day >= 10:
		data = date(hoje.year, hoje.month, 10)
	else:
		data = date(hoje.year, hoje.month-1, 10)
	data_prox = date(data.year, data.month+1, 10)
	lista_aulas = Aula.objects.filter(inicio__gte=data).filter(fim__lt=data_prox).filter(aluno=aluno)
	gasto_total = 0
	for aula in lista_aulas:
		duracao = duracao_aula(aula.id)
		gasto_total += aula.valor*duracao
	return render_to_response('ver_aluno.html', locals(), context_instance=RequestContext(request))

@permission_required('sistema.perm_cadastro_inventario')     
def ver_inventario(request, id_inventario):
    inventario = Inventario.objects.get(id=id_inventario)
    estoque = Estoque.objects.filter(inventario = inventario)
    return render_to_response('ver_inventario.html', locals(), context_instance=RequestContext(request))   

@permission_required('sistema.perm_cadastro_funcionario')
def ver_funcionario(request, id_funcionario):
	funcionario = DetalheUsuario.objects.get(id=id_funcionario)
	dados_financeiros = DadosFinanceiros.objects.get(detalheusuario=funcionario)
	if funcionario.cargo == "Professor":
		professor = Professor.objects.get(detalheusuario=funcionario)
		lista_referencias = Referencias.objects.filter(professor=professor)
	return render_to_response('ver_funcionario.html', locals(), context_instance=RequestContext(request))

@login_required
def ver_usuario(request):
    usuario = request.user
    funcionario = DetalheUsuario.objects.get(user=usuario)
    dados_financeiros = DadosFinanceiros.objects.get(detalheusuario=funcionario)
    return render_to_response('ver_usuario.html', locals(), context_instance=RequestContext(request))

#Data Tables
@permission_required('sistema.perm_cadastro_aluno')
def tabela_aluno(request):
    lista_alunos = Aluno.objects.all()
    return render_to_response('tabela_aluno.html', locals(), context_instance=RequestContext(request))

@permission_required('sistema.perm_cadastro_funcionario')   
def tabela_funcionario(request):
    lista_funcionario = DetalheUsuario.objects.all()
    return render_to_response('tabela_funcionario.html', locals(), context_instance=RequestContext(request))

@permission_required('sistema.perm_cadastro_inventario')    
def tabela_inventario(request):
    lista_inventario = Inventario.objects.all()
    return render_to_response('tabela_inventario.html', locals(), context_instance=RequestContext(request))

#Outros
@login_required
def upload_fotos(request, id_usuario):
	prefixo = '/home/edu4k/webapps/static_media/'
	erro = False
	success = False
	funcionario = DetalheUsuario.objects.get(id=id_usuario)
	if request.method == 'GET':
		cadastro = FotoForm()
	else:
		cadastro = FotoForm(request.POST, request.FILES)
		if cadastro.is_valid():
			foto = cadastro.cleaned_data['foto']
			funcionario.foto = foto.name
			funcionario.save()
			arquivo = open(prefixo+'arquivos/'+foto.name, 'wb+')
			for chunk in foto.chunks():
				arquivo.write(chunk)
			arquivo.close()
			success = True
		else:
			cadastro = FotoForm()
			erro = False
	return render_to_response('upload_fotos.html', locals(), context_instance=RequestContext(request))
			
	return render_to_response('upload_fotos.html', locals(), context_instance=RequestContext(request))

#relatorio
@permission_required('sistema.perm_cadastro_relatorio_aula')
def relatorio(request):
    return render_to_response('relatorio.html', locals(), context_instance=RequestContext(request))
   
#excel    
@permission_required('sistema.perm_cadastro_aluno')
def excel(request):
    historicos = Pagamento.objects.all()
    historicos_ano = []
    for historico in historicos:
	historicos_ano.append(historico.data.year)
    anos = historicos_ano
    
    
    return render_to_response('excel.html', locals(), context_instance=RequestContext(request))
    
@permission_required('sistema.perm_cadastro_aluno')   
def apagar_referencia(request, id_referencia):
    referencia = Referencias.objects.get(id=id_referencia)
    id = referencia.professor.detalheusuario.id
    referencia.delete()
    return HttpResponseRedirect('/edita_funcionario/'+str(id)+'/')

@permission_required('sistema.perm_cadastro_aluno')
def busca_aula(request):
	busca_form = BuscaAulaForm()
	ano_now = datetime.now()
	lista_alunos = Aluno.objects.all()
	lista_professores = Professor.objects.all()
	lista_locais = Local.objects.all()
	lista_unidades = Unidade.objects.all()
	return render_to_response('busca_aula.html', locals(), context_instance=RequestContext(request))

@permission_required('sistema.perm_cadastro_aluno')
def resultado_busca_aula(request):
	busca_form = BuscaAulaForm(request.GET)
	erro = False
	try:
		inicio = request.GET['inicio']
		fim = request.GET['fim']
	except:
		pass
	lista_aulas = Aula.objects.all()
	if busca_form.is_valid():
		if busca_form.cleaned_data['aluno']:
			lista_aulas = lista_aulas.filter(aluno__nome=busca_form.cleaned_data['aluno'])	
		if busca_form.cleaned_data['professor']:
			lista_aulas = lista_aulas.filter(professor__detalheusuario__nome=busca_form.cleaned_data['professor'])
		if busca_form.cleaned_data['local']:
			lista_aulas = lista_aulas.filter(local__nome=busca_form.cleaned_data['local'])
		if busca_form.cleaned_data['data']:
			data = busca_form.cleaned_data['data']
			year = data.year
			month = data.month
			day = data.day
			lista_aulas = lista_aulas.filter(inicio__year=year).filter(inicio__month=month).filter(inicio__day=day)
			if inicio:
				data_inicio = str(year)+'-'+str(month)+'-'+str(day)+' '+inicio
				lista_aulas = lista_aulas.filter(inicio__gte=data_inicio)
			if fim:
				data = busca_form.cleaned_data['data']
				data_fim = str(year)+'-'+str(month)+'-'+str(day)+' '+fim
				lista_aulas = lista_aulas.filter(inicio__lte=data_fim)
		if busca_form.cleaned_data['unidade']:
			nome_unidade = busca_form.cleaned_data['unidade']
			try:
				unidade = Unidade.objects.get(nome=nome_unidade)
				lista_aulas = lista_aulas.filter(local__unidade=unidade)
			except:
				erro = True
	#aluno = request.GET['aluno']
	#professor = request.GET['profesor']
	#local = request.GET['local']
	#data = request.GET['data']
	if erro:
		messages.error(request, 'Insira uma unidade correta')
		return HttpResponseRedirect('/busca_aula/')
	else:
		return render_to_response('resultado_busca_aula.html', locals(), context_instance=RequestContext(request))

def deleta_funcionario(request, id_funcionario):
	funcionario = DetalheUsuario.objects.get(id=id_funcionario)
	if funcionario.user:
		funcionario.user.delete()
	funcionario.delete()
	return HttpResponseRedirect('/tabela_funcionario/')	
